今天的內容參考官網-Modules
一個Module底下包含一個或多個Controllers或Providers。
nest.js裡是用Module來建構應用程式架構,任何nest.js的應用程式一定至少要有一個Root Module,在CLI產生的程式碼裡為ApplicationModule,透過nest.js提供的Factory Method建立應用程式的實例(Instance)從main.ts程式碼中可以看到
import { NestFactory } from '@nestjs/core';
import { ApplicationModule } from './app.module';
async function bootstrap() {
//NestFactory.create工廠方法載入Root Module,該方法回傳nest應用程式物件(實作INestApplication介面)
const app = await NestFactory.create(ApplicationModule);
await app.listen(3000);
}
//啟動nest應用程式
bootstrap();
依據功能(Feature)需求建立其他Module,例如User Module用來處理使用者資料、Auth Module處理使用者驗證等。
Module通常是一個Class並宣告@Module Decorator,指定哪些Controller及Provider在這個Module使用,通常通一個Controller及Provider不能指定給多個Module。
//app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
剩下的明天繼續